技术干货 | 聊聊区块链安全攻防实践
近期,慢雾科技创始人余弦受邀在“金融业企业安全建设实践”微信群进行在线直播,为金融行业安全人员分享区块链安全攻防实践观点。
以下是文字实录:
大家好,我是慢雾科技创始人余弦,熟悉我的人知道我玩安全攻防已经很久了,这两年决定进入新方向,安全从业的蓝海方向:区块链生态安全。于是大概两年前创建了慢雾科技,专注这个方向。目前还是在一线攻防,有不少心得,今晚尽量能覆盖到吧...
进来后发现,尼玛的这方向大开眼界:因为太乱了,生态乱,攻防也乱。
所以这两年,我自己要是心里没底,我是不会轻易拉人进来的..
好在,两年过去了,消停了些,监管大势也逐步看到了,于是有了今晚这个话题:区块链安全攻防实践。
在分享安全之前,给大家一些区块链技术入门资料(因为很多安全圈老友都有在问我):
入门区块链,有技术底子的建议读这三本书:Mastering Bitcoin、Mastering Ethereum、Mastering Monero,前两本有中文版,原汁原味的感觉才是对的。
好,开车:
本次分享会覆盖:
1. 区块链作恶方式;
2. 区块链安全攻防出发点;
3. 数字货币交易所安全攻防出发点。
第一部分:区块链作恶方式
先看:区块链作恶方式,这里发一张思维导图大家先看看。
这份《区块链作恶图》其实包含两大部分:
1. 攻击区块链相关的作恶
2. 用区块链来作恶的
主要内容是:
盗币
恶意挖矿
勒索
暗网
C2中转
洗钱
资金盘
菠菜
细节不一一展开,我觉得可以留给大家细看,如果有问题,我们再交流。
但是有一点,大家可以看到有许多作恶方式是和非区块链行业的其他行业类似,但还有很多是很不一样的。
比如:算力攻击里的 51% 攻击,这个攻击方法很有意思,简单来说就是你如果拥有超过一半以上的算力,你就可以决定一个区块链的走向(最长链原则),你可以导致如“双花攻击”(一笔钱花了两次)。而且有意思的是:这种算力攻击不是什么 DDoS 非法的,他是这个世界合法的...
大家可以打开这个网站,预估针对各种区块链发起 51% 的攻击成本:
http://www.cryto51.app/
大家再看“盗币”->“攻击智能合约”部分,这里我们主要列了两大智能合约平台:ETH与EOS。
大家可以看到这两大智能合约公链平台有相同的攻击点,也有很不一样的攻击点。这就是区块链平台安全研究时可能的大差异。这个往往取决于设计者意图、智能合约虚拟机实现方式等。
google的量子计算会影响目前算力吗?
如果Google的量子算力计算成熟了(技术、工程、经济),会。
智能合约的安全问题特别有魔力。
以太坊的智能合约发布后是不可更改的(虽然有升级模型,但这个以后有机会再说),EOS的智能合约发布后却是可以更改的...这就是一种奇妙的差异。
我们下一个,大家看看“恶意挖矿”,可能大家,绝大多数都遇到到“蠕虫挖矿”,一些服务器,比如Redis未授权访问被植入挖矿木马。但绝大多数应该是没遇到过矿场里的恶意挖矿。
我们在偏远山区布局了矿场业务,曾经买入一批知名的矿机,其中有几台在供应链环节(运输过程)固件被刷入挖矿病毒,当接入矿场局域网时,几分钟,整个矿场全感染了。这些病毒/蠕虫做的事主要是劫持挖矿算力达到间接盗币。
这是多少的血泪史,被供应链攻击,真是在其他行业很少见,但在公链世界,基础设施的矿场,这块却是一直流行攻击手法。
实在太过混乱。
好,我们继续看下一个“暗网”->“霸权对抗”。
大家都知道影子经纪人对吧,2017年泄露NSA那批网络军火,一个月后出现了席卷全球的WannaCry。
其实也是这个事件真正让我决定彻底投入区块链安全行业,为什么呢?
大家梯子打开影子经纪人的页面:https://steemit.com/@the-shadowbroker
为了逃避监管与溯源,影子经纪人用了 Steemit 这个区块链平台(底层基于 Steem 这个公链)发布了他们的所有披露。
他们刚开始募集比特币,后来觉得不够匿名,改为募集匿名币:门罗币和Zcash。
世界顶级的地下黑客行为往往能激起我们的研究兴趣,于是真正意义上我们才开始深入去了解为什么是 Steem,为什么是比特币、门罗币、Zcash。
之后我们遇到一个有趣现象,就是另一个地下黑客组织的出现:黑暗霸主。
大家看看黑暗霸主的Steemit页面:
https://steemit.com/@thedarkeroverlord
Page Not Found!!!!!!!
我的天...区块链也能删除内容??
其实不是,后来我们很快意识到:不是区块链删除了内容,而是Steemit这个平台自己做的屏蔽。而区块链Steem并没删除(也删不了,从设计及实现上来看)。
大家注意了:Steemit是平台,Steem才是区块链。Steemit是基于Steem的。
来,大家打开另一个基于Steem的平台Busy:
https://busy.org/@thedarkoverlord
大家意识到了没,这就是区块链有趣的点。
好,我们最后看下“菠菜”
大家可以打开DApp导航站:
https://dappradar.com
https://dapp.review
会发现上运行了许多DApp,好几个公链平台都有各种DApp,当然很多和“菠菜”无关。这个大家可以之后去体验体验,其实对了解公链的世界还是挺有用的。
好,由于内容很多,不展开了,我们继续下一个话题。
第二部分 区块链安全攻防出发点
当我们谈区块链安全攻防时,其实主要分两大块内容:链上攻防和链下攻防。
大家先看看链下攻防,是不是很多都熟悉,对的,这就是经典的传统网络安全攻防,这块没什么好提的,大家都很了解。
但链下攻防这有不一样的地方在于,图的右边:节点安全。这块不同的区块链就有不同的节点,就可能有不同的安全问题。
比如我们曾经全球做了批量的以太坊黑色情人节,大家可以打开看看我们做的专题页面:
https://4293967296.io/eth214/
攻击细节在这个页面底部有列。这里不展开,但简单提下过程:
1. 全球扫描 8545 端口(HTTP JSON RPC API)、8546 端口(WebSocket JSON RPC API)等开放的以太坊节点,发送 eth_getBlockByNumber、eth_accounts、eth_getBalance 遍历区块高度、钱包地址及余额。
2. 不断重复调用 eth_sendTransaction 尝试将余额转账到攻击者的钱包。
3. 当正好碰上节点用户对自己的钱包执行 unlockAccount 时,在 duration 期间内无需再次输入密码为交易签名,此时攻击者的 eth_sendTransaction 调用将被正确执行,余额就进入攻击者的钱包里了。
好,我们看链上攻防部分。
除了智能合约会出现各种安全问题之外,智能合约的虚拟机也会,虚拟机之下的链的共识也会,交易也会,方方面面。
关于整个链上的安全,我们研究切入点大体是:
静态代码检查
P2P 安全
RPC 安全
加密签名安全
账户与交易模型安全
系统合约安全
共识安全
代码合规
其中共识安全是区块链最有魔力的点。
比如比特币的PoW共识,ETH(以太坊)2.0要引入的PoS共识,EOS的DPoS共识。差异很大,安全研究来说会不大一样,甚至很不一样。
共识安全的研究核心目的就是打破共识,让非预期的交易或区块出现。
比如我们首发的一种叫“异形攻击”方式,可以做到让两条共识模型相似的链互相感染对方的区块链网络,以破坏他们自身的稳定共识。
还比如大家应该有听过的“日食攻击”、“女巫攻击”,最终也是感染共识,让攻击者低成本获利(获得足够的出块权力,影响区块链的后续进展)。
好,第二部分就先这样结束,大家可以积累问题,之后统一问,不过我估计不一定忙得过来回复。
第三部分:数字货币交易所安全攻防出发点
为什么要特别提这个点,原因是:这个生态太多数字货币交易所了,大家都忙着炒币呢...满地都是钱(币),又没国家监管力量,盗币后溯源又极难。这是这个生态里攻防极度严峻的场景。
好,大家打开上面交易所钱包安全架构的这张图。
先给大家报备一下:数字货币交易所的安全体系建设水平确实大大落后于金融业。
这个图大家先重点看:热钱包、温钱包、冷钱包部分。因为最终的一切安全攻防都是围绕钱包的。
为什么叫:冷、温、热。其实是按照钱包的触网程度、流动程度、金额程度来划分:
冷:触网程度低(或零)、流动程度小、金额程度大;
热:触网程度高、流动程度高、金额程度小;
温:介于冷、热之间。
相比之下,大体来说,冷钱包会更安全,热钱包会更危险。
几个月前币安被APT盗取了7074枚比特币,遭遇攻击的是他们的比特币热钱包。但官方说法这个只占了他们总量的2%,大家自己感受下。
APT攻击其实在数字货币交易所里是频繁发生的,但鉴于一些保密要求,我们这在展示不做过多披露,而且APT手法大家应该都很熟了。
其实这张安全架构图内容可展开说的太多,大家应该有印象我有时候会在群里请教大家一些金融行业领域的防御手法,数字货币交易所这块的工作普遍太少。
风控在数字货币交易所场景下是极其之关键,稍微一点偏差就是不可挽回的巨额损失。
我特别在这给大家举例针对数字交易所的一种链上链下结合的攻击方式:假充值攻击。
简单来说,当数字货币交易所用户充值数字货币时,比如 USDT、EOS、以太坊的Token、XRP 等。交易所在拿到充值的 tx 记录(交易记录)时未作足够完备的判断,就容易引入假充值,也就是说充值进来的币实际上不存在,但交易所给入账了,也就认为是存在...
这是一个超级大坑,简直匪夷所思。
由于这些数字货币交易所中心化的,入账就是数据库里多了这笔金额,那么攻击者后续只需要提币就好。
公链上的不一定就是真的,这就是坑。
OK,我先分享到这。其他部分不展开了,感兴趣的可以加我再深入交流。也超时了。剩下的交给大家提问了。
问答环节
Q1:区块链业务发展初期的的公司,一般来讲往往会把用户量和业务发展放在第一位,常常忽略业务的安全性,更是会产生大量的区块链安全问题?对此余总有何建议?
A:没什么好建议,还是得让领导班子把安全成为基础设施(必备的植入:区块链安全就找慢雾)。
Q2:区块链安全,对于私钥的保管和智能合约的安全,该如何有效应对?是否有什么措施可以做到私钥触网?
A:私钥保管目前最切实际的安全方式是存入基于 HSM 的安全设备里。
Q3:矿机在运输过程中如何防范此类供应链攻击?
A:目前看很难,只能说提高各环节透明监管。
Q4:战略的留给大佬们,我提一下工作中遇到的战术操作层面的问题:
1、由于众所周知的原因,我们需要提前防范“业务部门扔过来一句话,我们XX业务已经上区块链了,你们安全的给评估一下吧”,安全视角看落地快检三板斧操作有么?
A:这个我很难回答了。
2、51%算力攻击主要是对抗工作量证明机制的链,余总遇到较多的其他机制区块链下还有哪些值得安全从业人员警惕的风险点呢?
A:要看哪条链,比如有的链明显有日食攻击或女巫攻击,或其他类似的攻击,那么低成本是可以打出51%攻击效果。
3、我们现在实现的区块链场景仍然集中在国际贸易和征信,目前感觉进入链中的环节的可靠性明显高于上链环节,这也是我们选择联盟链的一种考虑,从联盟链到公链,转换的安全关注点重心在哪里?
A:公链主要是有价值币,这是攻防的围绕点。
Q5:两个问题,偏前端评估:
1、区块链技术减轻了数据的模糊性,降低了欺诈的可能性,如KYC和AML的应用,那对于区块链AML的攻击面有实践吗, 尤其是在金融机构之间共享的场景下?
A:慢雾这边也做了链上AML:https://aml.slowmist.com,我们最怕的是AML被污染,其次是覆盖面不全。
2、基于NISTIR 8202的应用安全问题评估的有效性,及用于区块链安全体系建设的覆盖度」
A:这个话题很大,以后再看了。
往期回顾
慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾 GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
币乎
https://bihu.com/people/586104
知识星球
https://t.zsxq.com/Q3zNvvF
火星号
http://t.cn/AiRkv4Gz